#include <head.h>
/*

结合态
    需要 pthread_join 进行手动回收
分离态
    不需要主线程(进程) 进行回收 运行完成自动释放

    分离态 只是 让线程自动回收 但是 如果进程先结束 线程依然结束


int pthread_detach(pthread_t thread);
功能 主线程 调用 这个函数 可以让子线程 成为分离态

int pthread_cancel(pthread_t thread);
功能 主线程 调用 这个函数 可以关闭子线程
参数
    pthread_t thread 要关闭线程的线程号
*/

void *pthread_Func(void *arg)
{
    while (1)
    {
        sleep(1);
        printf("hello\n");
    }

    return 0;
}

int main(int argc, char const *argv[])
{
    pthread_t tid = 0;

    if (pthread_create(&tid, NULL, pthread_Func, NULL) != 0)
    {
        printf("线程创建失败\n");
        return 1;
    }

    pthread_detach(tid);
    char ch = 10;

    while (1)
    {
        printf("是否需要终止线程:(y 退出)\n");
        scanf("%c", &ch);
        if (ch == 'Y')
        {
            printf("退出了\n");
            pthread_cancel(tid); // 退出线程
        }
        else{
            printf("没退出\n");
        }
    }

    return 0;
}



